﻿	using Sustainalytics.Entities;
	using System;
	using System.Collections.Generic;


namespace Sustainalytics.Insights.Service
{
	public interface IInsightRepository 
	{
		bool Create(Insight newInsight);

        bool Update(Insight newInsight);

		bool Delete(Guid id);

		bool Delete(List<Guid> ids);

		Insight Read(Guid id);

		List<Insight> Read(DateTime publishedOnDate, string titlePart, InsightState? state, Guid? insightTopicId, Guid? insightSectorId, DateTime noOlderThan, int? skip, int? take, string orderby, bool orderAsc);

        long ReadCount(DateTime publishedOnDate, string titlePart, InsightState? state, Guid? insightTopicId, Guid? insightSectorId, DateTime noOlderThan);

		bool Update(List<Tuple<Guid , InsightState>> list);

        List<Guid> ReadUnpublishedWithStatusActive(DateTime date);

	}
}

